﻿using System;
using System.ComponentModel.DataAnnotations;
using GdHotel.Data.Resources;

namespace GdHotel.Data.Meta.Models
{
    public class ReserveHallModel
    {
        [Required(AllowEmptyStrings = false, ErrorMessage = "*")]
        [Display(Name = "ReservationName", ResourceType = typeof(Localization))]
        public String Name { get; set; }

        [Required(AllowEmptyStrings = false, ErrorMessage = "*")]
        [Display(Name = "ReservationPhone", ResourceType = typeof(Localization))]
        public String Phone { get; set; }

        [Required(AllowEmptyStrings = false, ErrorMessage = "*")]
        [Display(Name = "ReservationEmail", ResourceType = typeof(Localization))]
        [RegularExpression(@"^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$", ErrorMessage = "*")]
        public String Email { get; set; }

        [Required(AllowEmptyStrings = false, ErrorMessage = "*")]
        [Display(Name = "ReservationCompanyName", ResourceType = typeof(Localization))]
        public String CompanyName { get; set; }

        [DataType(DataType.Date)]
        [Required(AllowEmptyStrings = false, ErrorMessage = "*")]
        [Display(Name = "ReservationStartDate", ResourceType = typeof(Localization))]
        public DateTime? StartDate { get; set; }

        [Display(Name = "ReservationDuration", ResourceType = typeof(Localization))]
        public Int32 Duration { get; set; }

        [Display(Name = "ReservationPeopleCount", ResourceType = typeof(Localization))]
        [Range(1, 1000, ErrorMessage = "*")]
        [RegularExpression(@"^(\d{1,3}|1000)$", ErrorMessage = "*")]
        public Int32 PeopleCount { get; set; }

        [Display(Name = "ReservationArrangementType", ResourceType = typeof(Localization))]
        public String ArrangementType { get; set; }

        [DataType(DataType.MultilineText)]
        [Display(Name = "ReservationComments", ResourceType = typeof(Localization))]
        public String Comments { get; set; }


        [Display(Name = "ReservationComprehensiveLunchNeeded", ResourceType = typeof(Localization))]
        public Boolean ComprehensiveLunchNeeded { get; set; }

        [Display(Name = "ReservationComprehensiveDinnerNeeded", ResourceType = typeof(Localization))]
        public Boolean ComprehensiveDinnerNeeded { get; set; }

        [Display(Name = "ReservationCofeeBreakNeeded", ResourceType = typeof(Localization))]
        public Boolean CofeeBreakNeeded { get; set; }
    }
}